#pragma once
#ifndef __HWINPERLINNOICE_H__
#define __HWINPERLINNOICE_H__

#include "hwinobject.h"
#include "hwinexception.h"

namespace harlinn
{
    namespace windows
    {

        class PerlinNoice : public Object
        {
            int* pixels;
            int width;
            int height;
            double amplitude;
            double frequency; 
            double persistence;
            int octaves;
            double zStart;
        public:
            typedef Object Base;

            HWIN_EXPORT PerlinNoice();
            HWIN_EXPORT PerlinNoice(int theWidth, int theHeight,double theAmplitude = 1.2, double theFrequency = 0.020, double thePersistence = 0.9, int theOctaves = 3, double theZStart = 0);
            HWIN_EXPORT PerlinNoice(const PerlinNoice& other);
            HWIN_EXPORT PerlinNoice(PerlinNoice&& other);

            HWIN_EXPORT ~PerlinNoice();

            HWIN_EXPORT PerlinNoice& operator = (const PerlinNoice& other);
            HWIN_EXPORT PerlinNoice& operator = (PerlinNoice&& other);


            HWIN_EXPORT int* Pixels();


        };

    };
};



#endif //__HWINPERLINNOICE_H__
